package com.atguigu.jxc.controller;

import com.atguigu.jxc.domain.ServiceVO;
import com.atguigu.jxc.entity.*;
import com.atguigu.jxc.service.GoodsService;
import com.atguigu.jxc.service.RepertoryService;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @Author: zhao
 * @Date: 2020/12/4 18:23
 */
@Api(description = "库存管理")
@RestController
public class RepertoryController {

    @Autowired
    private RepertoryService repertoryService;

    @Autowired
    private GoodsService goodsService;

    /**
     * 保存报损单
     * 请求URL：http://localhost:8080/damageListGoods/save?damageNumber=BS1605766644460（报损单号,前端生成）
     * 请求参数：DamageList damageList, String damageListGoodsStr
     * 请求方式：POST
     * 返回值类型：JSON
     * 返回值：ServiceVO
     */
    @PostMapping("/damageListGoods/save")
    public ServiceVO damageListGoods(DamageList damageList, String damageListGoodsStr, String damageNumber) {
        System.out.println(damageNumber);
        return repertoryService.damageListGoods(damageList, damageListGoodsStr, damageNumber);
    }

    /**
     * 新增报溢单
     * 请求URL：http://localhost:8080/overflowListGoods/save?overflowNumber=BY1605767033015（报溢单号）
     * 请求参数：OverflowList overflowList, String overflowListGoodsStr
     * 请求方式：POST
     * 返回值类型：JSON
     * 返回值：ServiceVO
     */
    @PostMapping("/overflowListGoods/save")
    public ServiceVO overflowListGoods(OverflowList overflowList, String overflowListGoodsStr) {
        return repertoryService.overflowListGoods(overflowList, overflowListGoodsStr);
    }

    /**
     * 查询所有 当前库存量 小于 库存下限的商品信息
     * 请求URL：http://localhost:8080/goods/listAlarm
     * 请求参数：无
     * 请求方式：POST
     * 返回值类型：JSON
     * 返回值：Map<String,Object>
     */
    @PostMapping("/goods/listAlarm")
    public Map<String, Object> listAlarm() {

        List<Goods> list = new ArrayList<>();
        list = goodsService.listAlarm();

        Map<String, Object> map = new HashMap<>();
        map.put("rows", list);
        return map;
    }

    /**
     * 报损单查询
     * 请求URL：http://localhost:8080/damageListGoods/list
     * 请求参数：String  sTime（开始时间）, String  eTime（结束时间）
     * 请求方式：POST
     * 返回值类型：JSON
     * 返回值：Map<String,Object>
     */
    @PostMapping("/damageListGoods/list")
    public Map<String, Object> damageListGoodsList(String sTime, String eTime) {
        List<DamageList> list = new ArrayList<>();
        list = repertoryService.damageListGoodsList(sTime, eTime);

        Map<String, Object> map = new HashMap<>();
        map.put("rows", list);
        return map;
    }

    /**
     * 查询报损单商品信息
     * 请求URL：http://localhost:8080/damageListGoods/goodsList
     * 请求参数：Integer damageListId（报损单Id）
     * 请求方式：POST
     * 返回值类型：JSON
     * 返回值：Map<String,Object>
     */
    @PostMapping("/damageListGoods/goodsList")
    public Map<String, Object> damageListGoodsGoodsList(Integer damageListId) {
        List<DamageListGoods> list = new ArrayList<>();
        list = repertoryService.damageListGoodsGoodsList(damageListId);

        Map<String, Object> map = new HashMap<>();
        map.put("rows", list);
        return map;
    }

    /**
     * 报溢单查询
     * 请求URL：http://localhost:8080/overflowListGoods/list
     * 请求参数：String  sTime（开始时间）, String  eTime（结束时间）
     * 请求方式：POST
     * 返回值类型：JSON
     * 返回值：Map<String,Object>
     */
    @PostMapping("/overflowListGoods/list")
    public Map<String, Object> overflowListlist(String sTime, String eTime) {
        List<OverflowList> list = new ArrayList<>();
        list = repertoryService.overflowListlist(sTime, eTime);

        Map<String, Object> map = new HashMap<>();
        map.put("rows", list);
        return map;
    }

    /**
     * 报溢单商品信息
     * 请求URL：http://localhost:8080/overflowListGoods/goodsList
     * 请求参数：Integer overflowListId
     * 请求方式：POST
     * 返回值类型：JSON
     * 返回值：Map<String,Object>
     */
    @PostMapping("/overflowListGoods/goodsList")
    public Map<String, Object> overflowListGoodsgoodsList(Integer damageListId) {
        List<OverflowListGoods> list = new ArrayList<>();
        list = repertoryService.overflowListGoodsgoodsList(damageListId);

        Map<String, Object> map = new HashMap<>();
        map.put("rows", list);
        return map;
    }

}
